package com.pig4cloud.pigx.contract.open.api.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.pig4cloud.pigx.common.customize.utils.serializer.BigDecimalToPlainStringSerializer;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 */
@Data
public class OpenApiSymbolDetailsVOV1 implements Serializable {

	private static final long serialVersionUID = 1L;

	/**
	 * 币对名称
	 */
	private String name;

	/**
	 * 主币精度
	 */
	private Integer mainCurAccuracy;

	/**
	 * 主币名称
	 */
	private String mainCurName;

	/**
	 * 外币精度
	 */
	private Integer tokenCurAccuracy;

	/**
	 * 外币名称
	 */
	private String tokenCurName;

	/**
	 * 最大杠杆倍数
	 */
	private Integer multiple;

	/**
	 * 市价单手续费费率
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal marketFeeRate;

	/**
	 * 限价单手续费费率
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal limitFeeRate;

	/**
	 * 资金费率
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal fundingRate;

	/**
	 * 最小下单数量
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal minOrderNum;

	/**
	 * 最小下单价格
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal minOrderPrice;

	/**
	 * 市价单单笔最大数量
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal maxMarketOrderNum;

	/**
	 * 限价单单笔最大数量
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal maxLimitOrderNum;

	/**
	 * 最大挂单数量
	 */
	private Integer maxPendingOrderNum;

	/**
	 * 最大条件单挂单数量
	 */
	private Integer maxConditionPendingOrderNum;

	/**
	 * 最小价格波动单位
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal minPriceFloatUnit;

	/**
	 * 限价单价格上限比率
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal limitOrderPriceCapRatio;

	/**
	 * 限价单价格下限比率
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal limitOrderPriceFloorRatio;

	/**
	 * 强平清算费率
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal liquidateFeeRate;

	/**
	 * 强平提前量
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal liquidateAdvance;

	/**
	 * 张数
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal sheet;

	/**
	 * 币对头寸
	 */
	private List<OpenApiSymbolHierarchyVOV1> symbolHierarchy;

}
